package com.framework.service;

import com.baomidou.mybatisplus.service.IService;
import com.framework.entity.ter.TerMerchantReport;
import com.framework.page.PageUtils;
import com.framework.view.TerminalOwnDto;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 功能描述: 商户报备接口
 * @author ck
 * @date 2018/8/28 19:46
 */
public interface MerchantService extends IService<TerMerchantReport> {

	/**
	 * 昨天、本月商户报备数量
	 * @param agentId
	 * @param type
	 * @param isOwn
	 * @return
	 */
	int queryMerchantCount(Long agentId, Integer type,Integer isOwn);

	/**
	 * 根据sn查询商户报备
	 * @param sn 终端sn
	 * @return
	 */
	TerMerchantReport queryMerchantBySn(String sn);

	/**
	 * 商户报备
	 * @param merchantName
	 * @param phone
	 * @param sn
	 * @param model
	 * @param token
	 * @param merchantNo
	 */
	void repMerchant(String merchantName, String phone, String sn, String model, String token,String merchantNo);

	/**
	 * 添加
	 * @param t
	 */
	void insertMerchant(TerMerchantReport t);

	/**
	 * 根据sn查询商户报备人信息
	 * @param sn
	 * @return
	 */
	TerminalOwnDto queryMerchantOwnInfo(String sn);

	/**
	 * 商户列表查询
	 * @param token
	 * @param types
	 * @param terminalType
	 * @param toDayAmount
	 * @param thisMonthAmount
	 * @param state
	 * @param isActivation
	 * @param keywords
	 * @return
	 */
	Map<String,Object> queryMerchantMap(String token, String types, Integer terminalType, String toDayAmount, String thisMonthAmount, String state, String isActivation, String keywords);

	/**
	 * 列表
	 * @param params
	 * @return
	 */
    PageUtils queryMerchantPage(Map<String, Object> params);

	/**
	 * 商户个体查询
	 * @param token
	 * @param reportId
	 * @return
	 */
	Map<String, Object> queryMerchantByReportId(String token, String reportId);

	/**
	 * 删除商户，修改报备
	 * @param reportId
	 */
    void deleteMerchant(String reportId);

	/**
	 * 根据id获取相关信息
	 * @param reportId
	 * @return
	 */
    Map<String, Object> getMerchantById(String reportId);

	/**
	 * 修改商户信息
	 * @param merchant
	 */
	void updateMerchant(Map<String, Object> merchant);


	/**
	 * 商户列表 计算分润
	 * @return
	 * @param deptId
	 */
	List<TerMerchantReport> queryAllMerchantList(Long deptId);

	/**
	 * 获取商户推荐号
	 * @param token
	 * @return
	 */
	String getMerchantCode(String token);


	/**
	 *用户宝商户
	 * @param token
	 * @param state
	 * @return
	 */
    Map<String,Object> getYhbMerchant(String token, Integer state);

	/**
	 *验证商户推荐码
	 * @param token
	 * @param id
	 * @param sn
	 * @param state
	 */
	void verifyMerchant(String token, Long id, String sn, Integer state);

	/**
	 *微信报备
	 * @param merchantName
	 * @param phone
	 * @param sn
	 * @param model
	 * @param merchantNo
	 * @param agentPhone
	 * @param agentId
	 */
    void reportMerByWX(String merchantName, String phone, String sn, String model, String merchantNo, String agentPhone, Long agentId);

	/**
	 * 报备商户
	 * @param merchantName
	 * @param phone
	 * @param sn
	 * @param token
	 * @param merchantNo
	 */
	void repMerchant(String merchantName, String phone, String sn, String token, String merchantNo);

	/**
	 *根据id查询
	 * @param token
	 * @param reportId
	 * @return
	 */
	Map<String, Object> queryMerchantById(String token, String reportId);

	/**
	 *检查商户以及报备
	 * @return
	 */
	List<TerMerchantReport> checkMerchantAndDis();

	/**
	 * 处理无交易得商户
	 * @param terMerchantReport
	 */
	void handleNoTranMer(TerMerchantReport terMerchantReport);

	/**
	 * 获取百易当月连续激活数量达标30的列表
	 * @return
	 */
    List<Map<String, Object>> queryActivAgent();

    List<TerMerchantReport> queryMerchantByAgentId(Long agentId);
}

